home *** CD-ROM | disk | FTP | other *** search
/ Your Choice 3 / Your Choice Software Collection 3.iso / os2 / pmsound / history.txt < prev    next >
Text File  |  1994-08-20  |  30KB  |  595 lines

  1.  
  2. Future work (user requests):
  3. X.  Add tool to SWAP channels
  4. X.  Add system resources page
  5. X.  Warp function (like caliope)
  6. X.  Allow editing of the info field
  7. X.  On AVG funciton, allow combination based on percentages
  8. X.  Add recording capability
  9.     - Record for specific (MAX) amount of time
  10.     - Select input
  11.     - Specify volume
  12. X.  Drag/Drop capability
  13. X.  Define script syntax (REXX)
  14. X.  Find a way to remove the notebook pages for the major tabs
  15. X.  Reorder the buttons on the control panel
  16. X.  Integrate MMPM into the editor dialog (maybe)
  17. X.  Display multiple channels on the edit display.
  18.  
  19. Revision history:
  20. Version 1.0:   (22 Aug 94)
  21. 1.  Modified Copy command to only copy a single channel when
  22.     a single channel is selected.
  23. 2.  Renamed class to "PMsndX 1.00" (This will have the effect
  24.     of forcing beta testers to recreate the pmsndx.ini file)
  25. 3.  Bug.  Previously, the length of the start was always added
  26.     to the end when the clipboard was merged.
  27. 4.  Bug.  Previously, no matter if a selection was specified
  28.     for a channel or ALL was selected, REMOVE would remove
  29.     from all channels.
  30. 5.  Changed the profile operation so that the os2.ini file is
  31.     only modified when the program is registered.
  32. 6.  Added examples of the user interface to the help file.
  33. 7.  Created two help files.  The larger file is the default
  34.     and contains examples of the user interface.
  35.     smallhlp.hlp is the version of the help without the
  36.     examples.  To use the smaller version, copy it to
  37.     pmsndx.hlp.
  38.  
  39. Version 0.88:  (16 Aug 94)
  40. 1.  Bug.  Oh hey, secondary windows receive a WM_QUIT message
  41.     when they exit!  That caused PMsndX to exit too!  The solution?
  42.     Remove the CLOSE item from the MMPM system menu.
  43. 2.  Bug.  When using the VIBRO function, if the speed was left
  44.     at zero (0), PMsndX would hang.
  45. 3.  AUTO DISMISS is now the default for the OPEN and SAVE dialogs.
  46. 4.  The MMPM button has been renamed to PLAYBACK.
  47. 5.  Added more updates to the CLOCK pointer so that it does
  48.     not hang at positions when operations end prematurely.
  49. 6.  If MMPM is installed it is automatically enabled in the
  50.     settings box.
  51. 7.  The default is to save the window positions and the last
  52.     directory accessed.
  53. 8.  Removed the REWind button from the MMPM player and reorganized
  54.     the buttons.
  55. 9.  Bug.  The horizontal sides of the control panel would allow
  56.     the panel to resize smaller without resizing the buttons.
  57.     Now, resizing using the horizontal sides just moves the box.
  58.  
  59. Version 0.87:  (14 Aug 94)
  60. 1.  Bug.  The average function did not work for 4 channels.
  61. 2.  Bug.  The rate and speed dialogs did not properly manipulate
  62.     the mouse pointer and it would go from 0 to 2 but no further.
  63.     Note that there was nothing wrong with the operation other
  64.     than the mouse pointer did not get updated properly.
  65. 3.  Bug.  When a range was selected for the REVERSE tool, the
  66.     actual data reversed would be incorrect if the beginning
  67.     was not at 0.0 offset.
  68. 4.  Add tool to invert a waveform
  69. 5.  When PASTING from the clipboard, if the SHIFT key is held down
  70.     while pressing the PASTE button, the data on the clipboard will
  71.     be merged instead of pasting.  (merge = average 50/50).
  72. 6.  Bug.  When pasting, the old bug for Signed/Unsigned WAV
  73.     data was found again.
  74.  
  75. Version 0.86:  (11 Aug 94)
  76. 1.  Bug.  The Lowpass dialog would not redraw itself after it is
  77.     uncovered by another window.
  78. 2.  Bug.  If a .WAV file was loaded which contained a bad header,
  79.     the READ task would hang.
  80. 3.  If very small files were loaded (e.g. under 100 samples) the
  81.     clock pointer would stick at the 11:00 position and the open
  82.     dialog did not receive the signal to close.  It appears that
  83.     the system receives too many posts to the pointer queue and
  84.     as we all know, OS/2 deletes posts that are duplicated.  The
  85.     solution...force a .1 second delay after the read before sending
  86.     the update information.
  87. 4.  Previous versions just BEEPed when an operation was attempted
  88.     while the current sample was being manipulated.  That has been
  89.     changes so that if an operation is attempted while the data
  90.     is "busy" an error is displayed.
  91. 5.  Bug.  If the MMPM dialog was dismissed while the MMPM buffers
  92.     were being loaded, the "busy" flag would not be cleared
  93.     and no further operations could be done.
  94.  
  95. Version 0.85:  (9 Aug 94)
  96. 1.  Edited virtually all of the dialogs so that they would
  97.     appear correctly when VGA fonts are used with SVGA displays.
  98.     (Note, this may be an odd combination, but people use it
  99.     and I had to make sure that PMsndX displays correctly).
  100.  
  101. Version 0.84:  (8 Aug 94)
  102. 1.  Resized the MMPM dialog (moved the group box, added space
  103.     between the checkboxes, and increased the width and height
  104.     of the overall box)
  105. 2.  Widened the OPEN and SAVE dialog boxes and moved things
  106.     over to the right to add more space to avoid clipping
  107. 3.  Bug.  When the editor display is updated with a new file,
  108.     the Vertical Scroll bar (Zoom) would be set to maximum but
  109.     the actual zoom would be minimized.
  110. 4.  Bug.  When the redraw button on the editor was pressed, the
  111.     horizontal scroll bar would revert to the leftmost position
  112.     but the display would remain unchanged.  Pressing an arrow
  113.     would return it to the correct position.
  114. 5.  The Tools box size has been increased to allow more space
  115.     between the controls to avoid clipping.  On a 1024x768 display
  116.     the controls looked fine but at VGA resolution they were clipped.
  117.     a.  The Type page previously clipped the IRACAM and SMPVS
  118.     b.  The Average Channels page had the checkboxes touching
  119.     c.  The band-pass filter page clipped the "Add filter noise"
  120.     d.  The low-pass filter page clipped the slider at the top
  121.     e.  The Vibro-champ page had the sliders clipped
  122.     f.  The Fade page was clipped on the right side
  123.     g.  The Limit page clipped the sliders
  124.  
  125. Version 0.83:  (7 Aug 94)
  126. 1.  Fixed up the bitmap displays.
  127. 2.  PMsndX now checks the MMPM parameters to verify that the sound
  128.     card can play 16 bit sound samples.  If the sound card cannot
  129.     play 16 bit sounds, then the MMPM player will not load its buffers
  130.     and will just refuse to play.
  131.  
  132. Version 0.82:  (7 Aug 94)
  133. 1.  In previous versions, if a file was being saved and the program
  134.     exited, the program would wait indefinitely till the save completed.
  135.     This could prevent killing PMsndX and would lock the message queue.
  136. 2.  The MMPM player now displays "Loading Data" when it is filling
  137.     the data buffers.
  138. 3.  PMsndX now exits correctly when Ctrl-C is pressed from a command
  139.     window or when PMsndX is terminated from a task manager.
  140. 4.  PMsndX now properly terminates all tasks (save and MMPM) when
  141.     the program exits.  In previous versions, the MMPM task for
  142.     loading buffers was not killed when the program exited or when
  143.     the MMPM dialog was destroyed.
  144. 5.  In previous versions I did not save the last position of the
  145.     windows if the program exited while the windows were open.  This
  146.     was because I saved settings stuff before closing the windows and
  147.     the windows did not save their positions till they closed.
  148. 6.  The Toolbox now sets the tabs size based on the resolution of
  149.     the monitor.  This should avoid problems with clipping of text
  150.     found in previous versions.  (David Charlap showed me how to do
  151.     this effectively)
  152. 7.  Added hotkeys to the Tools notebook
  153. 8.  Moved the registration information out of the pmsndx.ini file
  154.     and into the system user ini file so that a user may use the
  155.     pmsndx.ini file on any computer or on a network.
  156.  
  157. Version 0.81:  (17 Jul 94)
  158. 1.  Bug.  The MMPM reloaded its buffers when the channel to manipulate
  159.     was changed regardless of the checkbox for global channels
  160. 2.  Bug.  The MMPM reloaded its buffers when the range to manipulate
  161.     was changed regardless of the checkbox for global range
  162. 3.  Bug.  (Well, not really) The error boxes were not application
  163.     modal.  They are now.
  164. 4.  A few fixups on the help text.
  165. 5.  Dialog windows do not move with the main control panel.
  166. 6.  The welcome dialog box has been changed so that the standard
  167.     text is greyed and the new stuff is dark to make it easier to
  168.     read.
  169. 7.  If the current sample in memory has been modified and the
  170.     EXIT button is pushed, the program will tell the user that
  171.     modified buffers exist and verify that the user wants to continue.
  172. 8.  The Registration box now has the capability to read a file
  173.     and find the registration information if it has the proper
  174.     keywords (i.e. if it was a password that I emailed you).
  175. 9.  Fixed bug in .WAV reader in which an the header was not checked
  176.     for invalid data and a "divide by 0" error could occur.
  177.  
  178. Version 0.8:  (17 Jul 94)
  179. 1.  Added a menu item to the main control panel to reset the size
  180.     of the main control panel to the default
  181. 2.  Bug.  When a sample is very short, the Display was not cleared
  182.     beyond the end of the sample.
  183. 3.  Bug.  When "Play on load" was selected, the new MMPM thread
  184.     would get triggered by window updates.
  185. 4.  Bug.  The Repeat button on the MMPM box could not be cleared
  186.     once set without closing down the box and reopening it.
  187. 5.  Resizable main control panel (what a bear!!!)
  188. 6.  Fixed windows so that they cannot fall outside of the viewable area
  189. 7.  Fix the file wildcard usage
  190. X.  Added HOTKEYS for the main control panel
  191.  
  192. Version 0.7:  (13 Jul 94)
  193. 1.  Added a REGISTRATION button the to Welcome box
  194. 2.  Completed a little tool (which you will never see) to
  195.     automatically generate the passwords and store them in
  196.     a database.  This illustrates the power of OS/2 because
  197.     I completed a fully functional editor in about 1 day.
  198. 3.  Edit confirmation to the EXIT button
  199. 4.  .WAV files now skip unknown keywords rather than reporting errors
  200. 5.  Added another thread to the MMPM player for loading the
  201.     buffers.
  202. 6.  Added new BITMAPs for the main control panel when MMPM
  203.     is not installed.
  204. 7.  Added a Repeat function to the MMPM playback
  205. 8.  Finished the BALANCE tool
  206. 9.  Fix all tasks so that sounds cannot be operated on while
  207.     another a task is modifying the buffers (i.e. while the
  208.     buffers are loading for the MMPM, the range selections
  209.     cannot be made)
  210. 10. Added a redraw button the the editor
  211. 11. Bug fixed.  When the display box was previously selected, the
  212.     display would receive the mouse movements, but the window would
  213.     not become the active window.
  214. 12. Add the ability to UNDO the last command.  This will double
  215.     the memory requirements and should be in the settings page
  216.     to disable for users who don't want to lose the memory.
  217. 13. The letters "I" and "O" were removed from the passwords to prevent
  218.     confusion over the number 1 and the letter I and the number 0 and
  219.     the letter O.
  220. 14. Fixed window locations so that they can never fall off the
  221.     screen.
  222. 15. Added MINIMIZE button to the dialogs
  223. 16. Bug fixed.  VOC files with a type 0x0a marker were not
  224.     read.  Unknown markers are skipped now.
  225. 17. Bug/oversight.  The Cut button was disabled for ranges
  226.     even if the program was registered.
  227.  
  228. Note 1: For Beta Testing purposes, use the following to enable
  229. all functions
  230.     Name:               "Beta Version Registration"
  231.     Through Version:    0.99
  232.     Password:           "cHLttnr0sqypjc2e"
  233. To enter the password, select REGISTER on the ABOUT or
  234. WELCOME boxes (accessed from the system menu).
  235.  
  236. Version 0.6:  (6 Jul 94)
  237. 1.  Renamed the initialization file from pmsndx03.ini to pmsndx.ini
  238. 2.  Removed QUALITY factor from the SAMPLING RATE tool
  239. 3.  Set up a global object which is shared between all dialogs
  240.     to allow the editor to be the central point of control for
  241.     selecting the range and channels for operations.
  242. 4.  Added checkbox to let the user select if he wants to automatically
  243.     dismiss the save/open dialogs
  244. 5.  Add "Global range selection" checkbox to MMPM Player
  245. 6.  Use "Global channel selection" for MMPM player (add checkbox)
  246. 7.  Add version indicator in the .ini file - (current version)
  247. 8.  Setup timer to MAIN control panel which propagates to the dialogs
  248. 9.  Check the size of the clipboard data and warn if it is
  249.     dissimilar to memory (use smaller of the two after paste)
  250. 10. Check the rate of the clipboard data and warn if it is
  251.     dissimilar to memory
  252. 11. When a version is run for the first time, a Welcome dialog is
  253.     displayed in place of the About box with information about the
  254.     current version.  (The welcome can be redisplayed from the main
  255.     menu.)
  256. 12. Change initial ABOUT box so that it doesn't block the message
  257.     queue
  258. 13. Added info box to indicate whether each tool uses the global objects
  259. 14. Use "Global range selection" in place of local display for tools
  260. 15. Use "Global channel selection" for the tools
  261. 16. Add registration stuff (after 15 minutes of use, guilt!)
  262.     - Disable all formats except .WAV and .AU if registration fails
  263.     - Disable individual channel selection on the editor
  264.     - Disable Range selection for Copy and Cut on the editor
  265.  
  266. Note 1: For Beta Testing purposes, use the following to enable
  267. all functions
  268.     Name:               "Beta Version Registration"
  269.     Through Version:    0.99
  270.     Password:           "cHLttnr0sqypjc2e"
  271.  
  272. Note 2:  The format of the .ini file has not changed.  Rename
  273. pmsndx03.ini to pmsndx.ini and you will not have to recreate
  274. the window locations and settings.
  275.  
  276. Version 0.5:  (8 June 94)
  277. 1.  Finished the Editor
  278. 2.  Added page in notebook for swapping channels
  279. 3.  Fixed an error when writing WAVE files with multiple channels
  280.  
  281. Note:  The big addition of the editor was a lot of work and is
  282. probably not perfect for everyone's needs.  Handling of multiple
  283. channels is awkward at best, but I think that I have made the
  284. most of it.  Opinions for improvement are welcome.  Read the
  285. help page to understand the PASTE operation before using it!
  286. The editor has been written such that it does not use the MMPM
  287. libraries for the sound manipulations in order to allow it to
  288. work on any system.
  289.  
  290. Note 2:  The global channel selection is not implemented across
  291. all the tools yet.  That will be in the next release.
  292.  
  293. Version 0.4a:  (4 June 94)
  294. 1.  Finished the Dupe dialog box in the tools box.
  295. 2.  Fixed an error with processing the Rate effect when
  296.     multiple channels are present.
  297. 3.  Fixed Echo effect to work with multiple channels
  298. 4.  Fixed Fade effect to work with multiple channels
  299.  
  300. Version 0.4*:  (22 May 94)
  301. 1.  Added support for the MAC HCOM format.  Unfortunately the only
  302.     portions of the header that are implemented are the ones that
  303.     SOX implements because I could not find examples of the HCOM
  304.     format and had to create a sample file from a .WAV file using
  305.     SOX.
  306. 2.  Added support for the IRCAM format.  Again, like the HCOM
  307.     format, I could not find samples in this format and had to
  308.     use SOX to create samples for testing.  As a result, only
  309.     the header fields supported by SOX are enabled.
  310. 3.  Added support for SampleVision (.smp) format.  WARNING:  This
  311.     is a wierd format in which the RATE is stored at the end
  312.     of the file.  You may find that when loading this type of
  313.     file no error is produced but an absurd rate may be displayed
  314.     in the Info tool page.  (Some reasons...SOX10 for OS/2 replaces
  315.     every CR return (char 13) with a CRLF.  I think that the output
  316.     file was not set to RAW so the file functions were fixing the
  317.     data up for DOS.  By the way, you can fix this up by changing
  318.     the playback speed (not the rate!!!) to something logical.)
  319. 4.  Reorganized the toolbox (again) and added place holders for
  320.     fading and balancing in a sample.  This will be added later.
  321. 5.  Added the user interface for the editor.  It is non-functional,
  322.     but is intended to get feedback on the functions that it will
  323.     be provided.  If you don't like it, now is the time to change
  324.     it!
  325. 6.  *** BUG:  Fixed bug in display routines for graphs when an absolute
  326.     value was entered into the start and end fields for the reverse
  327.     effect.
  328. 7.  Added fading to the tool box under the major header of VOLUME.
  329.     Samples can be faded in or out and at different rates.
  330.  
  331. *   Note:  With this version, all of the functionality of SOX has
  332.     been completed.  From here on out, we are breaking new ground.
  333. **  Note:  Space is reserved for the Dupe, Fade, and Balance effects,
  334.     but they have not been implemented and the DOIT button is
  335.     never enabled.
  336. *** The size of the executable is about 300k right now.  The good
  337.     news is that the only major additions will be the code for
  338.     the clipboard stuff.  The program currently has about 18000
  339.     lines of C code.  I could change over to DLLs to make the
  340.     actual executable smaller, but the way DLLs work with OS/2,
  341.     there is no memory savings.  If you hate 300k for a program
  342.     like this, then go back to SOX.
  343.  
  344. Version 0.3e:  (27 March 94)
  345. NOTE:  Since the size of the Open dialog box has changed, PMsndX
  346.     will not use the window positions or settings from the .ini
  347.     file.  This is to prevent the Open dialog box from being
  348.     positioned off the screen.
  349.  
  350. 1.  Multithreaded the command line playback functions.  Previous
  351.     versions shared the message queue through threads for playback
  352.     when the control panel was used, but when a sound was played
  353.     from the command line, all message processing would stop till
  354.     the file had been played.
  355. 2.  Fixed the .WAV read/write routines to handle the LIST fields
  356.     correctly.  Previous versions could not deal with the LIST
  357.     field and returned a error indicating that the file was in
  358.     a bad style.
  359. 3.  Changed the .VOC to be able to store the ASCII text string
  360.     in the info field.
  361. 4.  Added support for .IFF formats (Amiga).  This format has a
  362.     couple of fields that need mention here.  If you read a file
  363.     in, the ANNO field is discarded and the NAME field is used
  364.     for the Comment data retained in the files.  If a file is
  365.     written to disk, PMsndX arrogantly writes the "PMsndX ..."
  366.     into the ANNO field (... is replaced by the version number).
  367. 5.  The Version number has been changed to reflect the alpha version
  368.     of the program.  In the past changes to the version number
  369.     changed the name of the profile and resulted in loss of the
  370.     window positions and settings from previous versions.  This has
  371.     been changed such that the window positions and settings remain
  372.     active unless a major change is made in the profile information.
  373. 6.  Added user overrides for the file types when opening files.
  374.     When a file is opened, if the user specifies a specific filetype
  375.     (other than Auto), the program will try to open the file in
  376.     that format.  In the event that the filetype is not the
  377.     type specified, the PMsndX will attempt to determine the
  378.     file type as if the user had selected "Auto".
  379. 7.  When the file type is changed through the Tools notebook, the
  380.     output type is then specified and selected in the file type
  381.     area of the SAVE dialog box.
  382. 8.  The default format for saving a file is the same as the input
  383.     format.
  384. 9.  A field called "AUTO" has been added to the filetypes.  When
  385.     this button is selected, the file will be saved based on the
  386.     filename alone.
  387. 10. If the filename field is changed, the "AUTO" button will
  388.     automatically be selected.  This is because the file type
  389.     specified in the buttons will override the extension.  As
  390.     a result, if the user changes the filename and assumes that
  391.     the file would be saved based on the filename extension,
  392.     the file could be saved in a different format than the
  393.     extension indicates.
  394. 11. The filename used to load a sample into memory is automatically
  395.     used as the default filename when saving a file.  The path
  396.     for saving the file remains the last path used for saving
  397.     the file.
  398. 12. Added the .sb (Signed Byte) format.  This is a headerless
  399.     format.  If the user selects to load this format, the program
  400.     must ask the user for the sampling rate before the file
  401.     can be loaded.  Each byte of the file is treated as an 8
  402.     bit signed sample.
  403. 13. Added the .sw (Signed Word) format.  This is a headerless
  404.     format and the program will request a sampling rate when
  405.     the user loads this file format.  Each word (2 bytes) is
  406.     treated as a signed word in little endian order.
  407. 14. Added the .ub (Unsigned byte) format.  This is a headerless
  408.     format and the program will request a sampling rate when
  409.     the user loads a file of this format.  Each byte is treated
  410.     as a unsigned byte.
  411. 15. Added the .uw (Unsigned word) format.  This is a headerless
  412.     format and the program will request a sampling rate when
  413.     the user loads a file of this format.  Each word (2 bytes)
  414.     is treated as a unsigned word in little endian order.
  415. 16. Added the .ul (Ulaw) format.  This is a headerless format
  416.     and the program will request a sampling rate when the user
  417.     loads a file of this format.  Each byte is treated as a
  418.     ULAW encoded sample.  This format is the same format used
  419.     for .AU files.
  420. 17. The file Open dialog box does not close when the operation is
  421.     completed.
  422. 18. Multithreaded the file open operations.  When a file is being
  423.     read, the user may press the Abort button on the file open
  424.     dialog box to stop the read process.  If the program exits
  425.     before a file read thread has completed, the read thread is
  426.     terminated.
  427. 19. Multithreaded the file save operations.  There is no means
  428.     provided to abort a save operation.  If the program exits when
  429.     the file is saving, the program will wait till the save operation
  430.     has completed before exiting.
  431. 20. Added support for the Amiga/SGI .aif format.  Documentation
  432.     for this format was hard to find.  The only chunk formats
  433.     I could find were for COMM, and SSND.
  434.  
  435. Version 0.3d:
  436. 1.  Added use of the second mouse button (usually the right
  437.     mouse button) for the reverse effect and removed the
  438.     dynamic sorting of the start and end so that the numbers
  439.     don't jump back and forth when the user is entering
  440.     the endpoints.
  441. 2.  Added support for .VOC file formats.
  442.     Note:  I don't know what the hell SOX is doing, but it does
  443.            not seem to produce a useable file.
  444.     I always add an Extended data block to the file.  I don't
  445.       know if this will cause problems, but the extended part
  446.       contains the number of channels.
  447.     I don't know what to do with Repeat/End Repeat information
  448.       so I am currently ignoring it.  Any ideas?
  449.     I currently dump (on the floor) any ASCII text.  Anyone want
  450.       me to keep the stuff in the info field?
  451.     I currently only load 8 bit data.  I cannot deal with packed
  452.       data right now.  It is 1:00am and I am tired.
  453.     Some programs seem to expect the first block to be the
  454.       DATA block so I write this first always.
  455.  
  456. Version 0.3c:
  457. 1.  Added Speed Effect
  458. 2.  Reorganized the Tools notebook.  There were too many
  459.     tools to display the tabs on the notebook so major and
  460.     minor pages were created to group the tools.
  461. 3.  Modified the MMPM support to use a separate region of
  462.     memory than the samples are stored in.  Previously, the
  463.     memory for storing the playlist was taken out of the
  464.     pool for storing the samples for the effects.  As a
  465.     result, if you started the MMPM box an performed a
  466.     effect that took up more memory, a hole would be left
  467.     such that another block of memory could not be
  468.     allocated.  This method prevents creating the holes.
  469. 4.  Added Reverse Effect.
  470.  
  471. Version 0.3b:
  472. 1.  Fixed a big bug in the Bandpass filter.  If a sample
  473.     had multiple channels, it would only bandpass on the
  474.     first channel.
  475. 2.  Fixed a big bug in the Lowpass filter.  If a sample
  476.     had multiple channels, it would only lowpass on the
  477.     first channel.
  478. 3.  Added the little clock pointer to indicate how much
  479.     work has been completed.
  480. 4.  Removed the requirement for the audio device to be a
  481.     form of WaveAudio??.  Any string will work as long as
  482.     the device really exists.
  483. 5.  Multi-threaded all of the effects so that the program
  484.     is not a system hog.  The file read/write functions
  485.     are not multi-threaded.  Should they be?
  486.  
  487. Version 0.3a:
  488. 1.  Fixed the Play button so that it is animated when the
  489.     sample is played as it is loaded.  (What is the longest
  490.     record for staring at a code before you realize that it
  491.     is so late that you have been staring at the bug all
  492.     night and just did not recognize it?...What a dumb error
  493.     on my part!!!)
  494. 2.  Fixed the dynamic linking so that DosLoadModule is used
  495.     rather than linking with the dynamic libraries.  Version
  496.     0.3 would refuse to run on machines without MMPM
  497.     installed because the libraries were loaded even if the
  498.     MMPM support was not enabled.
  499. 3.  Changed to using SW.DLL for the buttons of the MMPM
  500.     dialog box.  This guarantees that the program will use
  501.     the latest formats for the buttons.
  502. 4.  Added command line playing.  I the PLAY_ON_LOAD option
  503.     is selected, any filenames which appear on the command
  504.     line will be played.  If a file is not found, the
  505.     program will signal an error and continue to the next
  506.     command line file.  If EXIT_AFTER_PLAY is not selected,
  507.     the last file that was successfully loaded will be
  508.     the current file in memory.
  509. 5.  Enabled the EXIT_AFTER_PLAY feature and modified the
  510.     behaviour such that the MMPM dialog is not displayed
  511.     during the playback.
  512.  
  513. Version 0.3:
  514. 1.  Removed the RECORD button (now just a blank button until
  515.     I can think of something)
  516. 2.  Changed PLAY button to MMPM and added basic play
  517.     capabilities (i.e. Play, Stop, Rewind, Pause).
  518. 3.  Updated Settings dialog to reflect options for the MMPM
  519.     stuff.
  520.  
  521. Version 0.2: (20 March 94)
  522. 1.  Fixed error with memory settings.  In version 0.1 if you
  523.     opened the Settings box and then applied it by pressing
  524.     the DOIT button it sould clear the data samples even if
  525.     the memory configuration had not changed.
  526. 2.  Fixed bug in version 0 in which the data was cleared
  527.     when the memory configuration was changed, but the
  528.     sample header was not cleared.  This led to th dialogs
  529.     trying to access data that had been released causing a
  530.     protection violation.
  531. 3.  Added the Bandpass notebook page.  This is probably one
  532.     of the most complex user interfaces in the notebook.
  533. 4.  Added the Echo effect.  This is the most complex
  534.     programming challenge for a useable user interface.
  535.     (Note, the echo only works for single channel samples).
  536. 5.  Fixed bug.  In version 0.1, the lowpass function did not
  537.     take into account the number of channels.  This has a
  538.     significant impact on the FFT operation.  This is fixed
  539.     in 0.2.
  540. 6.  Fixed bug.  In version 0.1, the Vibro effect did not
  541.     take into account multiple channels in a sample.  As a
  542.     result, the vibro was not continuous on individual
  543.     channels.
  544.  
  545. Version 0.1:  (13 March 94)
  546. 1.  Added Channel Averaging (0.1a)
  547. 2.  Added Vibro effect
  548. 3.  The .ini file are automatically located in the same directory
  549.     as the executable.
  550. 4.  Individual tool pages no longer have separate HELP buttons
  551. 5.  A HELP button has been added to the tool box for all pages.
  552.     When pressed, the help page for the page shown in the tools
  553.     dialog box will be displayed.
  554. 6.  A DISMISS button has been added to the tools dialog box for
  555.     a more consistent approach to dismissing.  The user can still
  556.     depress the tools button on the main control panel to dismiss
  557.     any tool dialog.
  558. 7.  Rearranged the buttons on the main control panel and added
  559.     two new buttons for Playing and Recording samples (not implemented
  560.     in this release...just placeholders)
  561. 8.  Changed the memory storage requirements so that data takes
  562.     half as much memory.  Each sample is stored as a signed SHORT
  563.     regardless of the sound type.
  564. 9.  Corrected major memory bug which resulted in a memory leak.
  565. 10. The echo effect presents an interesting challenge to the
  566.     user interface.  How do you provide the user with an
  567.     intuitive method to set the echo locations and the
  568.     strength of the echo from a dialog box?  My first
  569.     attempt was to try to display the waveform in a window
  570.     and then to let the user set the echo points, but the
  571.     problem of setting the echo strength is still difficult.
  572.     This operation may have to wait for another revision
  573.     after I have had some time to "sleep" on it.  The effect
  574.     itself is very simple, but the interface is much more
  575.     difficult.
  576.  
  577. 0.1a - SOX can averages 4 channels to 1 by putting all four
  578.        channels into 1.  4 channels to 2 is done by
  579.        averaging the left channels and the right channels
  580.        together.  PMsndX allows the user to select any
  581.        combination of the source channels.
  582.  
  583. Version 0.0 (initial release):
  584. 1.  6 buttons and associated dialog boxes created
  585. 1.  Ability to load and save .au files
  586. 2.  Ability to load and save .wav files
  587. 3.  Tool for changing the sampling rate (0.0a)
  588. 4.  Display of information about the current sample
  589.  
  590. 0.0a - SOX appears to use linear approximation to create the
  591.        new sample.  PMsndX provides for quality which allows the
  592.        approximation to be adjusted.
  593.  
  594.  
  595.